For each..next
Der Steuerungsbefehl for each..next definiert eine Skriptiteration, die für jeden Wert in einer kommagetrennten Liste einen oder mehrere Befehle ausführt. Für jeden Wert der Liste werden die Befehle zwischen for und next einmal ausgeführt.
Syntax:
Durch eine besondere Syntax ist es möglich, eine Liste mit Verzeichnis- und Dateinamen zu generieren.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Argumente:
Argument | Beschreibung |
---|---|
var | Eine Skriptvariable, die bei jedem Durchlauf der Schleife den jeweils nächsten Wert in der Werteliste annimmt. Ist var nach next festgelegt, muss sie denselben Variablennamen haben, wie den hinter dem zugehörigen for each. |
Der Wert von var kann durch Befehle innerhalb der Schleife geändert werden, dies ist aber nicht empfehlenswert.
Steht in der Schleife eine exit for-Bedingung, wird die Ausführung des Skripts beim ersten Befehl nach der Schleife, d. h. nach der Zeile mit dem abschließenden next, fortgesetzt. Auf exit for kann verzichtet werden, wenn stattdessen when oder unless verwendet wird.
Syntax:
list := item { , item }
item := constant | (expression) | filelist (mask) | dirlist (mask) | fieldvaluelist (fieldname)
Argument | Beschreibung |
---|---|
constant | Beliebige Zahl oder String. Beachten Sie, dass ein direkt im Skript geschriebener String zwischen einfachen Anführungszeichen stehen muss. Ein String ohne einfache Anführungszeichen wird als Variable interpretiert. Anschließend wird der Wert der Variable verwendet. Zahlen müssen nicht zwischen einfachen Anführungszeichen stehen. |
expression | Eine beliebige Formel. |
mask |
Eine Vorgabe für Dateinamen bzw. Ordnernamen, die alle in Dateinamen zugelassenen Zeichen enthalten kann, sowie die Wildcards * und ?. |
condition | Eine logische Formel, die True oder False ergibt. |
statements | Jede Gruppe von einem oder mehreren QlikView-Skriptbefehlen. |
filelist mask |
Durch die Syntax wird eine kommagetrennte Liste aller Dateien im aktuellen Verzeichnis generiert, die der Dateinamenmaske entsprechen. |
dirlist mask |
Durch die Syntax wird eine kommagetrennte Liste aller Ordner im aktuellen Ordner generiert, die der Ordnernamenmaske entsprechen. |
fieldvaluelist mask | Diese Syntax aggregiert durch die Werte eines Felds, das bereits in QlikView geladen wurde. |
Beispiel 1: Laden einer Liste von Dateien
Beispiel 2: Laden einer Dateiliste auf Speichermedium
Dieses Beispiel lädt eine Liste aller QlikView relevanten Dateien in einem Ordner.
Beispiel 3: Aggregierung nach den Werten eines Felds
In diesem Beispiel wird die Liste der geladenen Werte von FIELD aggregiert und ein neues Feld – NEWFIELD – erstellt. Für jeden Wert von FIELD werden zwei Datensätze NEWFIELD erstellt.
Die sich ergebende Tabelle sieht folgendermaßen aus:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |